Conventionally, in client-server network systems, such as the Internet, HTTP clients such as web browsers render HTTP responses including HTML content, such as web pages received from web servers. In rendering a web page or other content, the client requests the HTML content from the web server, and then renders and displays the content for the user.
Often, the initial request and response only supplies a portion of the content, and the client must request additional resources, such as images, script files, and cascading style sheets. Often, the original response from the server specifies what additional resources are needed. If any of these resources are already stored in a local cache at the client (such as the browser cache), then the browser can simply retrieve the needed data from the cache without making an additional request to a server. If some or all of the resources are not available from a local cache, they are retrieved from servers across the network. The process of requesting and receiving these additional resources from servers can add significantly to the time required to render the response, since the browser must wait for the resources to arrive before rendering can take place.